
#include "nane/SerializeSystem/SerializeSystemImpl_.h"
#include "nane/SerializeSystem/SerializationProtocolImpl_.h"

namespace nane
{

    ////////////////////////////////////////////////////////////////////////////////////////////////
    SerializeSystem::Implementation::Implementation()
        : SubSystem<ISerializeSystem>::Implementation("ISerializeSystem")
    {

    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    SerializeSystem::Implementation::~Implementation()
    {

    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    void SerializeSystem::Implementation::Release( SerializationProtocol::Implementation* _serializationProtocolImpl )
    {
        NANE_ASSERT_R( interface != NULL, "SerializeSystem must be initialized" );
        NANE_ASSERT_R( this == _serializationProtocolImpl->creator, "SerializationProtocol must be valid" );

        if( _serializationProtocolImpl->interface != NULL )
        {
            interface->ReleaseProtocol(_serializationProtocolImpl->interface);
        }
        delete _serializationProtocolImpl;
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
}   // namespace nane
